<!DOCTYPE html>
<html language="zh-cn">
  <head>
    <!--<link href="/static/css/style.css" rel="stylesheet" type="text/css" />-->
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
      <link href="/static/css/global.css" rel="stylesheet" type="text/css" />
      <link href="/static/css/comment.css" rel="stylesheet" type="text/css" />
      <title>用户评论</title>
  </head>
  <body>
      <div class="banner">
        <a href="http://localhost:8000/home/" class="back-word">BACK</a>
        <div class="subtitle">
            用户评论
            <span style="font-family:Adobe Hebrew; font-size:1rem; color:#002233;">USER COMMENT</span>
        </div>
        <img src="/static/image/moon.png" class="moon">
        <div class="banner-house">
            <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1440 320">
                <path fill="#002233" fill-opacity="1" d="M0,64L0,32L55.4,32L55.4,64L110.8,64L110.8,256L166.2,256L166.2,320L221.5,320L221.5,224L276.9,224L276.9,256L332.3,256L332.3,192L387.7,192L387.7,192L443.1,192L443.1,0L498.5,0L498.5,224L553.8,224L553.8,256L609.2,256L609.2,64L664.6,64L664.6,288L720,288L720,32L775.4,32L775.4,32L830.8,32L830.8,128L886.2,128L886.2,192L941.5,192L941.5,96L996.9,96L996.9,224L1052.3,224L1052.3,192L1107.7,192L1107.7,160L1163.1,160L1163.1,224L1218.5,224L1218.5,64L1273.8,64L1273.8,192L1329.2,192L1329.2,64L1384.6,64L1384.6,160L1440,160L1440,320L1384.6,320L1384.6,320L1329.2,320L1329.2,320L1273.8,320L1273.8,320L1218.5,320L1218.5,320L1163.1,320L1163.1,320L1107.7,320L1107.7,320L1052.3,320L1052.3,320L996.9,320L996.9,320L941.5,320L941.5,320L886.2,320L886.2,320L830.8,320L830.8,320L775.4,320L775.4,320L720,320L720,320L664.6,320L664.6,320L609.2,320L609.2,320L553.8,320L553.8,320L498.5,320L498.5,320L443.1,320L443.1,320L387.7,320L387.7,320L332.3,320L332.3,320L276.9,320L276.9,320L221.5,320L221.5,320L166.2,320L166.2,320L110.8,320L110.8,320L55.4,320L55.4,320L0,320L0,320Z">
                </path>
            </svg>
        </div>
    </div>
    <nav id="nav" class="quick-navigation">
        <div class="quick-navigation-word">
            <img src="/static/image/navigation-empty.png">
<!--            <a href="#H1" class="quick-navigation-item">-->
<!--                <img src="/static/image/navigation-section1.png">-->
<!--            </a>-->
            <a href="#H1" id="quick-a">词云图</a>
<!--            <a href="#H2" class="quick-navigation-item">-->
<!--                <img src="/static/image/navigation-section2.png">-->
<!--            </a>-->
            <a href="#H2" id="quick-b">文本聚类</a>
<!--            <a href="#H3" class="quick-navigation-item">-->
<!--                <img src="/static/image/navigation-section3.png">-->
<!--            </a>-->
            <a href="#H3" id="quick-c">情感分析</a>
        </div>
    </nav>
    <div class="main-body">
        <div class="content-container">
            <section id="H1" class="content-part">
                <div class="headline">词云图</div>
                <p>
                    从所爬取的70000多条用户评论数据中，其中包含安居客，房天下，厦门小鱼网等对楼盘的评价；新浪微博关于厦门房价的相关博文，知乎中相关问题的回答以及回答的评论。经过数据预处理之后，采用Textrank算法进行用户评论文本的关键词提取，提取重要性最高的前50个词，并且除去地名以及一些意义不大的词，最终绘制出如下词云图。
                </p>
                <div class="content-img">
                    <img src={{ total_wordcloud }}>
                </div>
                <p style="font-size:.8rem; text-align:center;">
                    Fig. 1. 词云图可视化结果
                </p>
                <p>
                    关键词主要是“上涨”，“配套”等一些对楼盘的具体评价，房价现状的评价等。对于楼盘的评价，选择等关键词与我们爬取的安居客等对楼盘的评价是比较吻合的。价格相关关键词体现了厦门房价普遍的高昂。
                </p>
            </section>
            <section id="H2" class="content-part">
                <div class="headline">文本聚类</div>
                <p>
                    在该部分，最实用K-Means算法进行用户评论文本聚类。主要将文本转化成词频矩阵，利用PCA降成二维数据，选取K=2进行聚类。聚类结果如下所示

                </p>
                <div class="content-img">
                    <img src={{ cluster_pic }}>
                </div>
                <p style="font-size:.8rem; text-align:center;">
                    Fig. 2. 文本聚类结果
                </p>
                <div class="content-img">
                    <img src={{ cluster0_cloud }}>
                </div>
                <p style="font-size:.8rem; text-align:center;">
                    Fig. 2.1. 聚类1词云图
                </p>
                <div class="content-img">
                    <img src={{ cluster1_cloud }}>
                </div>
                <p style="font-size:.8rem; text-align:center;">
                    Fig. 2.2 聚类2词云图
                </p>
                <p>
                    在第一类中，根据词云图，“装修”，“交房”等关键词可以看出该类主要是对于用户具体的购房选择，属于比较微观具体的层面，落实到具体的买房选择，体现购房者的偏向，这符合我们爬取的安居客，房天下等的数据。在第二类中，更多的关键词是关于“价格”，“收入”，“涨幅”等一些比较宏观的关键词，大部分是关于整个楼市市场的环境情况，以及人们的工资，收入等，体现的是居民购房的背景，以及一些房价、购房现状，与所爬取的知乎、微博数据比较吻合。
                </p>
            </section>
            <section id="H3" class="content-part">
                <div class="headline">情感分析</div>
                <div class="content-img">
                    <img src={{ sentiment_analysis }}>
                </div>
                <p style="font-size:.8rem; text-align:center;">
                    Fig. 3. 情感分析结果
                </p>
                <p>
                    s.sentiments得到的结果是一个在0-1.0之间的浮点数，越靠近1越积极，越靠近0越消极。图表的横轴表示情感极性，纵轴表示数量，可以看出，情感极性分布在0和1附近的最多，其余评论的情感极性均匀分布，负面评论（极性为0）的数量是正面评论（极性最接近1）的两倍多。可以初步推断，人们对厦门房价这个话题的态度是消极居多的。
                    <br>
                    我们知道，不同的词性所反映出的结果也会有差别，比如名词虽然可以体现人们从主题出发所产生的联想（可能反映出一些之前未被察觉到的关键信息），但却很难从中看出人们的情感极性，形容词最能直观地展现出人们对主题的看法，而副词可以体现人们情感的强烈程度。 因此，为了更深入地分析评论的情感，考虑分词性进行情感分析。
                </p>
                <div class="content-img">
                    <img src={{ adj_sentiment_analysis }}>
                </div>
                <p style="font-size:.8rem; text-align:center;">
                    Fig. 3.1 形容词情感分析结果
                </p>
                <p>
                    从形容词的情感极性分析图中，我们发现了5个高峰，分别是0、0.4、,043、0.65、0.88，其中最多的评论情感集中在0.65左右，也就是偏向正面。
                </p>
            </section>
        </div>
    </div>
<!--    <h1>厦门房价-用户评论</h1>-->
<!--    <h3>来源：房天下，安居客</h3>-->
<!--    <div>-->
<!--        <table border="1" cellspacing="1" cellpadding="1" >-->
<!--            <tr>-->
<!--                <th>评论ID</th>-->
<!--                <th>预处理分词评论</th>-->
<!--            </tr>-->
<!--            {% for comment in comment_list %}-->
<!--                <tr>-->
<!--                    <td>{{ comment.id }}</td>-->
<!--                    <td>{{ comment.content }}</td>-->
<!--                </tr>-->
<!--            {% endfor %}-->

<!--        </table>-->
<!--        <ul class="pagination">-->
<!--            {% if page_object.has_previous %}-->
<!--                <li>-->
<!--                <a href="?page={{ page_object.previous_page_number }}" aria-label="Previous"><span aria-hidden="true">&laquo;</span></a>-->
<!--                </li>-->
<!--            {% endif %}-->

<!--           {% for pg in page_object.paginator.page_range %}-->
<!--            {% if page_object.number == pg %}-->
<!--            <li class="active"><a href="?page={{ pg }}">{{ pg }}</a></li>-->
<!--            {% else %}-->
<!--            <li><a href="?page={{ pg }}">{{ pg }}</a></li>-->
<!--            {% endif %}-->
<!--            {% endfor %}-->
<!--            {% if page_object.has_next %}-->
<!--                <li>-->
<!--                    <a href="?page={{ page_object.next_page_number }}" aria-label="Next"><span aria-hidden="true">&raquo;</span></a></li>-->
<!--            {% endif %}-->
<!--        </ul>-->
<!--    </div>-->
  </body>
</html>